home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 095 / 151b_exe.arc / WATCHDOG.ASM < prev    next >
Assembly Source File  |  1984-10-10  |  2KB  |  129 lines

  1.     PAGE    60,132
  2.     TITLE    Watchdog - resets machine when carrier is lost
  3. ;
  4. ; WATCHDOG.COM    8/15/84  by James R. Reinders
  5. ;
  6. ;  Update/Modification History (reverse order):
  7. ;
  8. ;    8/15/84 - Original program.
  9. ;
  10. ;    The IBM Macro Assembler and Link will produce WATCHDOG.EXE
  11. ;    which must be converted to a .COM program by the DOS
  12. ;    EXE2BIN command:
  13. ;
  14. ;    C\> EXE2BIN WATCHDOG.EXE WATCHDOG.COM
  15. ;
  16. TRUE    EQU    1
  17. FALSE    EQU    0
  18.  
  19. CSEG    SEGMENT 'CODE'
  20.     ASSUME    CS:CSEG
  21.     ORG    100H        ; SET UP FOR .COM CONVERSION
  22.  
  23. INIT    PROC    FAR        ; WE'RE AN INTERRUPT ROUTINE
  24.     JMP    SHORT INITIAL    ; SO WE HAVE TO SET UP FIRST
  25.  
  26. START    PROC    FAR    ; Start of main routine - Timer (18.2 times per second)
  27.     ASSUME    CS:CSEG,DS:CSEG
  28.  
  29.     PUSH    AX
  30.     MOV    AL,CS:101H
  31.     OR    AL,AL
  32.     JZ    NOWAY
  33.     PUSH    DX
  34.  
  35.     MOV    DX,2FEH
  36.     IN    AL,DX
  37.     RCL    AL,1
  38.     JNC    LOSTCARR
  39.  
  40.     POP    DX
  41. NOWAY:    POP    AX
  42.  
  43.     DB    0EAH        ; JMP old timer routine
  44. WAS1Co    DW    0
  45. WAS1Cs    DW    0
  46.  
  47. LOSTCARR:
  48.     DB    0EAH
  49.     DW    0
  50.     DW    0FFFFH
  51.  
  52. START    ENDP
  53.  
  54. BUFFER    DB    '       Watchdog v1.0    8/15/84   by James R. Reinders'
  55.     DB    13,10,'$'
  56.  
  57. INITIAL:
  58.     MOV    AX,CS
  59.     MOV    DS,AX
  60.  
  61.     MOV    DX,OFFSET BUFFER
  62.     MOV    AH,9
  63.     INT    21H    ; PRINT GREETING
  64.  
  65.     MOV    AX,351CH
  66.     INT    21H
  67.  
  68. DOWHAT: XOR    AL,AL
  69.     MOV    SI,05DH
  70.     CMP    BYTE PTR [SI],'O'
  71.     JNZ    ONONON
  72.     CMP    BYTE PTR [SI+1],'F'
  73.     JNZ    ONONON
  74.     CMP    BYTE PTR [SI+2],'F'
  75.     JNZ    ONONON
  76.     CMP    BYTE PTR [SI+3],' '
  77.     JZ    OFFOFF
  78.  
  79. ONONON: INC    AL
  80.     CMP    WORD PTR ES:[BX],2E50H
  81.     JNZ    PUTIN
  82. OFFOFF: CMP    WORD PTR ES:[BX],2E50H
  83.     MOV    DX,OFFSET NODOG
  84.     JNZ    PBYE
  85.  
  86.     DEC    BX
  87.     MOV    ES:[BX],AL
  88.  
  89.     MOV    DX,OFFSET ACTIVE
  90.     OR    AL,AL
  91.     JNZ    PBYE
  92.     MOV    DX,OFFSET NACTIVE
  93.  
  94. PBYE:    MOV    AH,9
  95.     INT    21H
  96.     INT    20H
  97.  
  98. PUTIN:    MOV    AX,ES
  99.     MOV    WAS1Cs,AX
  100.     MOV    CS:WAS1Co,BX
  101.  
  102.     MOV    AX,CS
  103.     MOV    DS,AX
  104.  
  105.     MOV    DX,OFFSET START
  106.     MOV    AX,251CH  ; DOS ROUTINE TO RESET INT. VECTOR
  107.     INT    21H
  108.  
  109.     MOV    DX,OFFSET INSTAL
  110.     MOV    AH,9
  111.     INT    21H
  112. ;
  113.     MOV    DX,OFFSET BUFFER ; LAST ADDRESS HERE
  114.     INT    27H    ; TERMINATE BUT STAY RESIDENT
  115. INIT    ENDP
  116.  
  117.  
  118. INSTAL    DB    'Watchdog installed and activated.',13,10,'$'
  119. ACTIVE    DB    'Watchdog activated.',13,10,'$'
  120. NACTIVE DB    'Watchdog deactivated.',13,10,'$'
  121. NODOG    DB    'Watchdog not present OR'
  122.     DB    ' another time utility loaded since watchdog.'
  123.     DB    13,10,'$'
  124.  
  125. CSEG    ENDS
  126.     END    INIT
  127. NODOG    DB    'Watchdog not present OR'
  128.     DB    ' another time utility loaded since watchdog.'
  129.     DB    13,10,'$'